package com.laowang.project.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.laowang.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户信息对象 wx_user
 *
 * @author laowang
 * @date 2022-02-03
 */
@NoArgsConstructor
@Data
public class WxUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @Excel(name = "id")
    @ApiModelProperty(value = "${comment}", required = false)
    private Integer mid;

    /** 昵称 */
    @Excel(name = "昵称")
    @ApiModelProperty(value = "昵称", required = false)
    private String nickname;

    /** 手机号 */
    @Excel(name = "手机号")
    @ApiModelProperty(value = "手机号", required = false)
    private String phone;

    /** 头像 */
    //@Excel(name = "头像")
    @ApiModelProperty(value = "头像", required = false)
    private String avatar;

    /** 女0男1 */
    //@Excel(name = "女0男1")
    @ApiModelProperty(value = "女0男1", required = false)
    private Integer gender;

    /** $column.columnComment */
    //@Excel(name = "女0男1")
    @ApiModelProperty(value = "女0男1", required = false)
    private String openid;

    @ApiModelProperty(value = "女0男1", required = false)
    private BigDecimal balance;


    /** 积分 */
    //@Excel(name = "积分")
    @ApiModelProperty(value = "积分", required = false)
    private Integer points;

    /** 推荐人id */
    //@Excel(name = "推荐人id")
    @ApiModelProperty(value = "推荐人id", required = false)
    private Integer introMid;




    /** $column.columnComment */
    //@Excel(name = "推荐人id")
    @ApiModelProperty(value = "推荐人id", required = false)
    private Integer status;

    private Integer vipLevel;

    private Integer checkUser; //是否活动核销人0不是,1是'

    @Excel(name = "余额")
    private Integer goldCoin;//金币


    private Integer frozenGold;//冻结金币

    @ApiModelProperty(value = "是否商家", required = false)
    private Integer isMerchant;//1 是,0否

    @ApiModelProperty(value = "是否推广大使", required = false)
    private Integer promoDor;//1 是,0否


    private String group;//1 是,0否




    /** 二维码地址 */
    //@Excel(name = "二维码地址")
    @ApiModelProperty(value = "二维码地址", required = false)
    private String qrcode;

    /** 微信公众号推送消息的openid */
   // @Excel(name = "微信公众号推送消息的openid")
    @ApiModelProperty(value = "微信公众号推送消息的openid", required = false)
    private String tsOpenid;

    private String address;
    private String longitude;

    private String latitude;


    private String isAuth;

    private String groupName;

    private String fupai;

    private String position;

    private String address1;

    private String collectionCode;

    private Integer isPartner;//是否合伙人


    private Integer partnerVip;//合伙人级别

    private Integer promoLevel;//推广大使级别


    private Integer line;//分销线股东

    private Integer distribLevel;//分销等级


    private Integer lineTwo;//分销线合伙人


    private Integer stockHolder;//是否股东

    private Integer lineThree;//分销线推荐官


    private Integer wallet;//商家钱包



    @Transient
    private String product;

    @Transient
    private String partnerName;

    @Transient
    private String gudong;

    @Transient
    private String proDoName;

    @Transient
    private String shopName;

    @Transient
    private String auditStatus;

    @Transient
    private MyCarBook myCarBook;

    /** 密码 */
    //@Excel(name = "密码")
    @ApiModelProperty(value = "密码", required = false)
    private String password;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private Date updateTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireTime1;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireTime2;

    @Transient
    private Integer isMid;

}
